জাভাস্ক্রিপ্টে স্ট্রিং সার্চ হল এমন একটি প্রক্রিয়া যা নির্দিষ্ট সাবস্ট্রিং বা প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয় একটি বড় স্ট্রিং-এর মধ্যে। স্ট্রিং সার্চের বিভিন্ন পদ্ধতি এবং মেথড রয়েছে, যা ডেভেলপারদের তাদের কোডে আরও কার্যকরী এবং দক্ষতার সাথে স্ট্রিং ম্যানিপুলেট করতে সহায়তা করে। নিচে আমরা জাভাস্ক্রিপ্টের বিভিন্ন স্ট্রিং সার্চ মেথড সম্পর্কে আলোচনা করবো।
indexOf()
মেথডindexOf()
মেথডটি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট সাবস্ট্রিং খুঁজে এবং এর প্রথম উপস্থিতির সূচক (ইন্ডেক্স) রিটার্ন করে। যদি সাবস্ট্রিং পাওয়া না যায়, তবে এটি -1
রিটার্ন করে।
string.indexOf(searchValue, startIndex)
let text = "Hello, welcome to the world of JavaScript.";
let position = text.indexOf("welcome");
console.log(position); // আউটপুট: 7
let notFound = text.indexOf("Python");
console.log(notFound); // আউটপুট: -1
lastIndexOf()
মেথডlastIndexOf()
মেথডটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট সাবস্ট্রিংয়ের সর্বশেষ উপস্থিতির সূচক রিটার্ন করে। যদি সাবস্ট্রিং পাওয়া না যায়, তবে এটি -1
রিটার্ন করে।
string.lastIndexOf(searchValue, startIndex)
let text = "Hello, welcome to the world of JavaScript. Welcome again!";
let position = text.lastIndexOf("Welcome");
console.log(position); // আউটপুট: 39
let notFound = text.lastIndexOf("Python");
console.log(notFound); // আউটপুট: -1
includes()
মেথডincludes()
মেথডটি চেক করে একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট সাবস্ট্রিং উপস্থিত আছে কিনা। এটি একটি বুলিয়ান মান (true
বা false
) রিটার্ন করে।
string.includes(searchValue, startIndex)
let text = "Hello, welcome to the world of JavaScript.";
let hasWelcome = text.includes("welcome");
console.log(hasWelcome); // আউটপুট: true
let hasPython = text.includes("Python");
console.log(hasPython); // আউটপুট: false
startsWith()
মেথডstartsWith()
মেথডটি চেক করে একটি স্ট্রিং নির্দিষ্ট সাবস্ট্রিং দিয়ে শুরু হয় কিনা। এটি একটি বুলিয়ান মান রিটার্ন করে।
string.startsWith(searchValue, startIndex)
let text = "Hello, welcome to the world of JavaScript.";
let starts = text.startsWith("Hello");
console.log(starts); // আউটপুট: true
let notStarts = text.startsWith("welcome");
console.log(notStarts); // আউটপুট: false
endsWith()
মেথডendsWith()
মেথডটি চেক করে একটি স্ট্রিং নির্দিষ্ট সাবস্ট্রিং দিয়ে শেষ হয় কিনা। এটি একটি বুলিয়ান মান রিটার্ন করে।
string.endsWith(searchValue, length)
let text = "Hello, welcome to the world of JavaScript.";
let ends = text.endsWith("JavaScript.");
console.log(ends); // আউটপুট: true
let notEnds = text.endsWith("welcome");
console.log(notEnds); // আউটপুট: false
search()
মেথডsearch()
মেথডটি একটি প্যাটার্ন (রেগুলার এক্সপ্রেশন) ব্যবহার করে স্ট্রিংয়ের মধ্যে খুঁজে এবং এর প্রথম ম্যাচের সূচক রিটার্ন করে। এটি indexOf()
এর মতই কাজ করে তবে রেগুলার এক্সপ্রেশন সমর্থন করে।
string.search(regexp)
let text = "Hello, welcome to the world of JavaScript.";
let position = text.search(/world/i);
console.log(position); // আউটপুট: 21
let notFound = text.search(/Python/i);
console.log(notFound); // আউটপুট: -1
match()
মেথডmatch()
মেথডটি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্নের সমস্ত ম্যাচ খুঁজে এবং একটি অ্যারে রিটার্ন করে। যদি কোন ম্যাচ না পাওয়া যায়, তবে এটি null
রিটার্ন করে।
string.match(regexp)
let text = "The rain in SPAIN stays mainly in the plain.";
let matches = text.match(/ain/gi);
console.log(matches); // আউটপুট: ["ain", "AIN", "ain", "ain"]
let noMatch = text.match(/Python/gi);
console.log(noMatch); // আউটপুট: null
রেগুলার এক্সপ্রেশন (RegEx) একটি শক্তিশালী টুল যা জটিল প্যাটার্ন ম্যাচিং এবং স্ট্রিং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। এটি বিভিন্ন স্ট্রিং সার্চ মেথডের সাথে ব্যবহার করা যেতে পারে যেমন search()
, match()
, replace()
, ইত্যাদি।
let text = "The quick brown fox jumps over the lazy dog.";
// সমস্ত 'o' খুঁজে বের করা
let matches = text.match(/o/g);
console.log(matches); // আউটপুট: ["o", "o", "o"]
// কোনো শব্দ দিয়ে শুরু হচ্ছে কিনা চেক করা
let startsWithT = /^The/.test(text);
console.log(startsWithT); // আউটপুট: true
// সংখ্যার খোঁজ
let numbers = "There are 15 cats and 30 dogs.";
let foundNumbers = numbers.match(/\d+/g);
console.log(foundNumbers); // আউটপুট: ["15", "30"]
replace()
মেথডreplace()
মেথডটি একটি স্ট্রিংয়ের নির্দিষ্ট অংশকে অন্য কিছু দিয়ে প্রতিস্থাপন করে। এটি স্ট্রিং সার্চের সাথে সন্নিবেশিত হতে পারে।
string.replace(searchValue, newValue)
let text = "Hello, welcome to the world of JavaScript.";
let newText = text.replace("JavaScript", "Programming");
console.log(newText); // আউটপুট: Hello, welcome to the world of Programming.
রেগুলার এক্সপ্রেশন ব্যবহার করে সব মিল খুঁজে প্রতিস্থাপন করা:
let text = "The rain in SPAIN stays mainly in the plain.";
let newText = text.replace(/ain/gi, "XXX");
console.log(newText); // আউটপুট: The rXXX in SPXXX stays mXXXly in the plXXX.
স্ট্রিং সার্চে ক্যাস সেনসিটিভিটি (Case Sensitivity) গুরুত্বপূর্ণ একটি বিষয়। কিছু মেথড যেমন indexOf()
, lastIndexOf()
, includes()
, startsWith()
, এবং endsWith()
ক্যাস সেনসিটিভ হয়, অর্থাৎ তারা বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরকে আলাদা করে।
let text = "JavaScript is amazing!";
console.log(text.includes("javascript")); // আউটপুট: false
console.log(text.includes("JavaScript")); // আউটপুট: true
ক্যাস ইনসেনসিটিভ সার্চের জন্য রেগুলার এক্সপ্রেশন ব্যবহার করা যেতে পারে:
let text = "JavaScript is amazing!";
let hasJavaScript = /javascript/i.test(text);
console.log(hasJavaScript); // আউটপুট: true
জাভাস্ক্রিপ্টে স্ট্রিং সার্চের বিভিন্ন মেথড এবং পদ্ধতি রয়েছে, যা ডেভেলপারদের স্ট্রিং ম্যানিপুলেশন এবং ডেটা খোঁজার কাজকে সহজ করে। indexOf()
, lastIndexOf()
, includes()
, startsWith()
, endsWith()
, search()
, এবং match()
মেথডগুলির সাহায্যে বিভিন্ন ধরণের স্ট্রিং সার্চ করা সম্ভব। রেগুলার এক্সপ্রেশন ব্যবহার করে আরও জটিল প্যাটার্ন ম্যাচিং এবং সার্চ করা যায়। স্ট্রিং সার্চের সময় ক্যাস সেনসিটিভিটি এবং মেথডের বৈশিষ্ট্যগুলি বুঝে ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ, যাতে সঠিক ফলাফল পাওয়া যায় এবং কোডের কার্যকারিতা বৃদ্ধি পায়।
split()
এবং filter()
মেথড ব্যবহার করে নির্দিষ্ট অংশগুলি আলাদা করে নিন।স্ট্রিং সার্চের দক্ষতা বৃদ্ধি করলে আপনার জাভাস্ক্রিপ্ট প্রোগ্রামিং দক্ষতাও বৃদ্ধি পাবে, যা আরও কার্যকর এবং নির্ভরযোগ্য কোড লেখার ক্ষেত্রে সহায়ক হবে।
common.read_more